package com.zhengsr.wanandroid.mvp.contract;

import com.zhengsr.corelib.bean.ArticleCollectBean;
import com.zhengsr.corelib.bean.NaviData;
import com.zhengsr.corelib.bean.BannerBean;
import com.zhengsr.corelib.bean.BaseResponse;
import com.zhengsr.corelib.bean.CollectBean;
import com.zhengsr.corelib.bean.KnowTreeBean;
import com.zhengsr.corelib.bean.LogUpBean;
import com.zhengsr.corelib.bean.LoginBean;
import com.zhengsr.wanandroid.mvp.base.IBaseView;

import java.util.List;

/**
 * Created by zhengshaorui
 * time: 2018/8/19
 */

public interface ContractManager {

    //主页的接口
    interface IHomeView extends IBaseView{
        void loadMoreData(List<CollectBean> articleBeans);
        void loadDataSuccess(List<BannerBean> bannerBeans,
                             List<CollectBean> articleBeans);
        void addCollectArticleSuccess(int position, CollectBean collectBean,
                                      BaseResponse<ArticleCollectBean> articleCollectBean);
        void cancelCollectArticleSuccess(int position,CollectBean collectBean,BaseResponse response);
    }

    //登陆与注册的接口
    interface ILoginView extends IBaseView{
        void loginInSuccess(LoginBean bean);
    }

    interface ILogoutView extends IBaseView{
        void loginOutSuccess();
    }

    interface  ILogUpView extends IBaseView{
        void logUpSuccess(LogUpBean bean);
    }

    //收藏文章列表
    interface ICollectView extends IBaseView{
        void getCollectData(List<CollectBean> datas);
    }
    //收藏与取消
    interface IAddOrCancelCollect extends IBaseView{
        void addCollectArticleSuccess(BaseResponse<ArticleCollectBean> articleCollectBean);
        void cancelCollectArticleSuccess(BaseResponse response);
    }

    //知识体系
    interface IKnowTree extends  IBaseView{
        void getAllTree(List<KnowTreeBean> knowTreeBeans);
    }
    interface IdetailKnowledge extends IBaseView{
        void getDetailKnowledge(ArticleCollectBean bean,boolean isRefresh);
    }

    //获取导航数据
    interface InaviView extends IBaseView{
        void getNaviData(List<NaviData> data);
    }



}
